home *** CD-ROM | disk | FTP | other *** search
- CODE SEGMENT PARA PUBLIC
- ASSUME CS:CODE,DS:CODE,ES:CODE
- ORG 100H
- START PROC NEAR
- LOOP: MOV AH,0
- INT 16H
- MOV NEWKEY,AX
- MOV AH,2
- INT 16H
- CMP AL,OLDSHFT
- JNZ NOEXIT
- MOV NEWSHFT,AL
- MOV AX,NEWKEY
- CMP AX,OLDKEY
- JZ EXIT
- MOV AL,NEWSHFT
- NOEXIT: MOV OLDSHFT,AL
- CALL HEX
- MOV AX,NEWKEY
- MOV OLDKEY,AX
- MOV AL,AH
- CALL HEX
- MOV AX,OLDKEY
- CALL HEX
- MOV DL,13
- CALL HEX2
- MOV DL,10
- CALL HEX2
- JMP LOOP
- EXIT: RET
- HEX: PUSH AX
- MOV CL,4
- SHR AL,CL
- CALL HEX1
- POP AX
- AND AL,15
- HEX1: ADD AL,90H
- DAA
- ADC AL,40H
- DAA
- MOV DL,AL
- HEX2: MOV AH,2
- INT 21H
- RET
- OLDKEY DW 0
- OLDSHFT DB 0
- NEWKEY DW 0
- NEWSHFT DB 0
- START ENDP
- CODE ENDS
- END START
- L,AL
- HEX2: MOV AH,2
- INT 21H
- RET
- OLDKEY DW 0
- OLDSHFT DB 0
- NEWKEY DW 0
-